home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1994 November / macformat-018.iso / Utility Spectacular / Developer / f2c_5_92 Folder / f2c_5_92 / libI77 / fio.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-05-26  |  1.4 KB  |  76 lines  |  [TEXT/ttxt]

  1. #ifdef THINK_C
  2. #define NON_UNIX_STDIO
  3. #define MSDOS
  4. #endif
  5. #include "stdio.h"
  6. #ifndef NULL
  7. /* ANSI C */
  8. #include "stddef.h"
  9. #endif
  10.  
  11. #ifndef SEEK_SET
  12. #define SEEK_SET 0
  13. #define SEEK_CUR 1
  14. #define SEEK_END 2
  15. #endif
  16.  
  17. #ifdef MSDOS
  18. #ifndef NON_UNIX_STDIO
  19. #define NON_UNIX_STDIO
  20. #endif
  21. #endif
  22.  
  23. #ifdef UIOLEN_int
  24. typedef int uiolen;
  25. #else
  26. typedef long uiolen;
  27. #endif
  28.  
  29. /*units*/
  30. typedef struct
  31. {    FILE *ufd;    /*0=unconnected*/
  32.     char *ufnm;
  33. #ifndef MSDOS
  34.     long uinode;
  35.     int udev;
  36. #endif
  37.     int url;    /*0=sequential*/
  38.     flag useek;    /*true=can backspace, use dir, ...*/
  39.     flag ufmt;
  40.     flag uprnt;
  41.     flag ublnk;
  42.     flag uend;
  43.     flag uwrt;    /*last io was write*/
  44.     flag uscrtch;
  45. } unit;
  46.  
  47. extern int errno;
  48. extern flag init;
  49. extern cilist *elist;    /*active external io list*/
  50. extern flag reading,external,sequential,formatted;
  51. extern int (*getn)(),(*putn)();    /*for formatted io*/
  52. extern long inode();
  53. extern FILE *cf;    /*current file*/
  54. extern unit *curunit;    /*current unit*/
  55. extern unit units[];
  56. extern VOID sig_die();
  57. #define err(f,m,s) {if(f) errno= m; else fatal(m,s); return(m);}
  58.  
  59. /*Table sizes*/
  60. #define MXUNIT 100
  61.  
  62. extern int recpos;    /*position in current record*/
  63. extern int cursor;    /* offset to move to */
  64. extern int hiwater;    /* so TL doesn't confuse us */
  65.  
  66. #define WRITE    1
  67. #define READ    2
  68. #define SEQ    3
  69. #define DIR    4
  70. #define FMT    5
  71. #define UNF    6
  72. #define EXT    7
  73. #define INT    8
  74.  
  75. #define buf_end(x) (x->_flag & _IONBF ? x->_ptr : x->_base + BUFSIZ)
  76.